#ifndef __UNIT_H__
#define __UNIT_H__
#include <string>

enum CompareSystermType {
   TYPE_LENGTH,
   TYPE_VOLUME,
};

class Unit
{
public:    
    int getBaseVlaue(int amount) const;
    int getAmount(int baseVlaue) const;
    CompareSystermType getType() const;
    virtual const std::string showUnitStepString(int amount);
    virtual const std::string showBaseUnitString(int amount); 
protected:
    Unit(int unit,CompareSystermType type); 
private:    
    int unit;
    CompareSystermType	type;
};

class Container
{
public:
    Container(int amount, const Unit& unit);
    bool operator==(const Container& container) const;
    bool operator!=(const Container& container) const;  
    Container operator+(const Container& container); 
    const std::string printUnitStepString();
    const std::string printBaseUnitString(); 
private:
    int amount;
    const Unit unit;
};
#endif
